#region Microsoft Public License
/*
 * (c) Copyright Chenjun Wu. http://utablesdk.codeplex.com
 * 
 * This source is subject to the Microsoft Public License (Ms-PL).
 * Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
 * All other rights reserved.
 */
#endregion

﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UTable.ObjectManager.Commands;
using System.Windows;
using System.Collections.ObjectModel;

namespace UTable.Objects
{
    public interface IObjectEntity: IObject
    {
        IVisualTree ControlTree { get; }

        ILocalObjectManager LocalObjectManager { get; set; }

        ObservableCollection<IObjectEntity> Children { get; }

        IObjectEntity GetObjectByID(String id);

        Boolean HitContent(HitTestParameters hitTestParameters);

        HitTestResult HitTest(HitTestParameters hitTestParameters);

        Point TranslatePoint(Point point, IVisualNode relativeTo);

        void ExecuateCommand(ContentCommand cmd);

		void RaiseEvent(ObjectEventType type, object args);
    }
}
